#ifndef _PM_FLOW_HPP_
#define _PM_FLOW_HPP_

#include <string>
#include <memory>

/*---------------------------------------------------------------------------*/

namespace ProjectManager {

	struct Trigger;

/*---------------------------------------------------------------------------*/

struct Flow
{
/*---------------------------------------------------------------------------*/

public:

/*---------------------------------------------------------------------------*/

	virtual ~Flow() {}

	virtual const std::string& getName() const = 0;

	virtual void setName( const std::string& _name ) = 0;

	virtual void addTrigger( const Trigger& _trigger ) = 0;

	virtual int getTriggersCount() const = 0;

	virtual const Trigger& getTrigger( int _idx ) const = 0;

/*---------------------------------------------------------------------------*/

};

/*---------------------------------------------------------------------------*/

} // namespace ProjectManager

/*---------------------------------------------------------------------------*/

#endif // _PM_FLOW_HPP_
